/* ******************************************************************************
 * Copyright (c) 2006-2012 XMind Ltd. and others.
 * 
 * This file is a part of XMind 3. XMind releases 3 and
 * above are dual-licensed under the Eclipse Public License (EPL),
 * which is available at http://www.eclipse.org/legal/epl-v10.html
 * and the GNU Lesser General Public License (LGPL), 
 * which is available at http://www.gnu.org/licenses/lgpl.html
 * See https://www.xmind.net/license.html for details.
 * 
 * Contributors:
 *     XMind Ltd. - initial API and implementation
 *******************************************************************************/
package org.xmind.core;

import org.xmind.core.style.IStyled;

/**
 * @author briansun
 * 
 */
public interface IRelationship extends IAdaptable, IIdentifiable, ITitled,
        ISheetComponent, IStyled, IModifiable {

    /**
     * @return
     */
    IRelationshipEnd getEnd1();

    /**
     * @return
     */
    String getEnd1Id();

    /**
     * @return
     */
    IRelationshipEnd getEnd2();

    /**
     * @return
     */
    String getEnd2Id();

    /**
     * @return
     */
    ISheet getParent();

    /**
     * @param id
     */
    void setEnd1Id(String id);

    /**
     * @param id
     */
    void setEnd2Id(String id);

    /**
     * @return
     */
    boolean checkAvailable();

    /**
     * 
     * @param index
     * @return
     */
    IControlPoint getControlPoint(int index);

}